package random;

/**
 * 怕楼梯
 *
 * 假设你正在爬楼梯。需要 n 阶你才能到达楼顶
 * 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢？
 */

public class L70 {

    public static void main(String[] args) {
        System.out.println(climbStairs(8));
    }

    /*
    动态规划
    f(x)=f(x−1)+f(x−2) 其实就是相当于斐波那契数列
     */
    public static int climbStairs(int n) {

        int p = 0, q = 0, r = 1;
        for (int i = 1; i <= n; ++i) {
            p = q;
            q = r;
            r = p + q;
        }
        return r;

//        作者：LeetCode-Solution
//        链接：https://leetcode-cn.com/problems/climbing-stairs/solution/pa-lou-ti-by-leetcode-solution/
//        来源：力扣（LeetCode）
//        著作权归作者所有。商业转载请联系作者获得授权，非商业转载请注明出处。
    }


    /*
    矩阵快速幂
    通项公式
     */

}
